#ifndef _TRANSTION_H_
#define _TRANSTION_H_

#include <functional>
#include <memory>
#include "Context.h"

class Transition
{
public:
    Transition(int curState, int nextState, std::function<bool(std::shared_ptr<Context>)>& satisfiedFun):m_curState(curState), m_nextState(nextState){
        m_satisfiedFun = satisfiedFun;
    }

    Transition(int curState, int nextState):m_curState(curState), m_nextState(nextState){
        m_satisfiedFun = NULL;
    }
public:
    int m_curState;
    int m_nextState;

    std::function<bool(std::shared_ptr<Context>)> m_satisfiedFun;
};

#endif